function [RX_Faded_Noisy] = ...
    SFO_Estimation(RX_Faded_Noisy, Start_Sample,Oversample, N_Frames, Original_RX_IN,...
    Original_Start,pkt)



global interp_cons;
Start = (Start_Sample) + (184 + 72) * Oversample;
Original_Start_used = (Original_Start + 1) + (184 + 103) * Oversample;



% SFO Correction For Pkt ~= 1

if (pkt ~= 1 && abs(interp_cons(end)) > 0.05)
    m = interp_cons(end)/83020;
    RX_Faded_Noisy = interp1(1:length(RX_Faded_Noisy), RX_Faded_Noisy, ...
        1:(1+m):length(RX_Faded_Noisy),'linear');
end
mm = RX_Faded_Noisy;
% ************************************************************* %

interpolation_const = 0;
iteration = 0;
acc = 1;
%%
for frame_index = 2 : N_Frames
    if mod(frame_index-1,72) == 0
        Start = Start + (31 + 256 + 31 + 41)*Oversample;
        Original_Start_used = Original_Start_used + (256 + 103)*Oversample;
    else
        Start = Start + (31 + 256)*Oversample ;
        Original_Start_used = Original_Start_used + (31 + 256)*Oversample ;
    end
    update_num = 1;
    % SFO Correction For Pkt one Only ,,, other wise Estimation The Erro
    % Only ....
    if (mod(frame_index,update_num) == 0)
        iteration = iteration + 1;
        [mm interpolation_const acc] = SFO_Correction(mm, Start,...
            Original_RX_IN(Original_Start_used-31*4:Original_Start_used-1),...
            interpolation_const,iteration,update_num,acc,pkt);
        if pkt == 1
            interp_cons = interpolation_const;
            RX_Faded_Noisy = mm;
        end
    end
end


if (pkt ~= 1)
    interp_cons = [interp_cons;(interp_cons(end) + 0.1*interpolation_const)];
end

end





